Systems and methods for generating a playback timeline

ABSTRACT

The system generates a display providing condensing content for display under time constraints. In response to a selection of a program that has already started, the system retrieves information about the program. Based on this information, and information about the user, the system selects a subset of segments of the program, forming a shorter version of the content that fits within a reduced time interval, from the time of selection to a scheduled end time. Accordingly, the user is presented with the condensed version of the currently selected program by, including the important or relevant segments of the program. The system generates the condensed content by selecting segments of the program that are determined to be important to the user and that cumulatively fit with the available viewing time. The system may sort, score, or otherwise rank segment identifiers based on user profile information.

BACKGROUND

The present disclosure relates to devices displaying content havingsegments, and, more particularly, devices that display content based onadjusted timelines.

SUMMARY

Content, such as episodic programming, is becoming more complex andconsumers are increasingly interested in viewing content in apersonalized way on their own schedule. For example, a typical showmight be scheduled to be displayed during a predetermined time period. Aviewer selecting a program part way through the scheduled display timemay miss some of the important scenes. Because programs may include aseries of chapters or segments, they may be discretized. Similarly, someof the segments may be more relevant or important for the user.

The present disclosure describes systems and methods for condensingcontent for display under time constraints. In some embodiments, inresponse to a selection of a program that has already started, thesystem retrieves information about the program. Based on thisinformation, and information about the user, the system selects a subsetof segments of the program, forming a shorter version of the contentthat fits within a reduced time interval, from the time of selection toa scheduled end time. In some embodiments, the system retrievesinformation about many program, and generates markers. The markersindicate at which time a particular condensed version can still beviewed, ending at a predetermined end time. Based on program informationand user information, the system selects a subset of segments of theprogram, corresponding to a shorter version of the content that fitswithin each reduced time interval, from the time of marker to ascheduled end time. Accordingly, the user is presented with indicatorsof when to begin viewing a program by to be able to view important orrelevant segments of the program.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 shows two displays of an illustrative guidance application havinga selected program, in accordance with some embodiments of the presentdisclosure;

FIG. 2 shows an illustrative guidance application having time markersfor a plurality of programs, in accordance with some embodiments of thepresent disclosure;

FIG. 3 shows a block diagram of an illustrative arrangement of data andmetadata for generating condensed content, in accordance with someembodiments of the present disclosure;

FIG. 4 shows a block diagram of an illustrative process flow forgenerating condensed content based on metadata, in accordance with someembodiments of the present disclosure;

FIG. 5 is a block diagram of an illustrative user equipment, inaccordance with some embodiments of the present disclosure;

FIG. 6 is a flowchart of an illustrative process for generatingcondensed content, in accordance with some embodiments of the presentdisclosure;

FIG. 7 is a flowchart of an illustrative process for selecting segmentsfor display under time constraints, in accordance with some embodimentsof the present disclosure;

FIG. 8 is a flowchart of an illustrative process for selecting segmentsfor display under time constraints based on viewing behavior, inaccordance with some embodiments of the present disclosure; and

FIG. 9 is a flowchart of an illustrative process for generating a markerindicative of condensed content, in accordance with some embodiments ofthe present disclosure.

DETAILED DESCRIPTION

FIG. 1 shows displays 100 and 150 of an illustrative guidanceapplication having a selected program, in accordance with someembodiments of the present disclosure. A cursor or other highlight maybe used to select content items for viewing by a user. For example, uponreceiving a selection of a program based on the cursor, the guidanceapplication may retrieve data and metadata for the program. The guidanceapplication may determine a set of segments to present to a user basedon importance of the segment and based on time constraints. The guidanceapplication may be implemented with control circuitry of any suitabledevice or combination of devices, in accordance with the presentdisclosure.

Display 100, as illustrated includes a grid of program identifiers withthe vertical axis defined by channel and the horizontal axis defined bypredetermined display time. For example, time slots ranging from 8:00 pmto 10:00 pm are illustrated for seven channels. The current clock timeas illustrated in display 100 is 8:14 pm, with the cursor highlightingNCIS: Los Angeles. In some embodiments, referencing display 100, inresponse to the selection of NCIS: Los Angeles at 8:14 pm, the guidegenerates marker 101 at 8:25 pm, which in this illustrative example, isthe time at which the user can start this program before and still beable to watch all necessary segments of the program by 9:00 pm. Forexample, the guide determines that thirty-five minutes is required todisplay the necessary segments. In some embodiments, the guidanceapplication generates a marker, before which the user can view acondensed version of the program at a regular end-time while not missany segments of actual program that are deemed important. The guidanceapplication may display the marker, or otherwise alert the user that acondensed version of the program exists.

Display 150, as illustrated includes a grid of program identifiers withthe vertical axis defined by channel and the horizontal axis defined bypredetermined display time, similar to display 100. The current clocktime as illustrated in display 150 is 8:14 pm, when the cursor ishighlighting NCIS: Los Angeles. In some embodiments, when NCIS: LosAngeles is selected by a user, and is scheduled to be displayed from8:00 pm-9:00 pm, the system determines whether to, and how to, generatecondensed content, indicated by time interval 151 (e.g., extending from8:14 pm-9:00 pm). For example, in some embodiments, the guidanceapplication extracts detailed metadata of the program (e.g., NCIS: LosAngeles as illustrated) as well as user profile information when theprogram is selected. The detailed metadata may indicate time indicatorsfor each segment of the program along with recap time, introductiontime, advertisement time, post credits time, any other times, or anycombination thereof. The guidance application may determine whichsegments of the program to display to fit within the time constraints.For example, in the illustrated example, the clock time is 8:14 pm andthe end time is 9:00 pm, thus leaving forty-six minutes for the user toview a condensed version of the episode of NCIS: Los Angeles. Theguidance application determines which segments to include based on 1)whether each is important or otherwise relevant to the user, and 2)whether the selected segments cumulatively fit within the forty-sixminute interval available for viewing. The guidance application displaysthe selected segments, along with any other auxiliary content (e.g.,advertisements, credits, post-credit content, or other content) withinthe available interval.

FIG. 2 shows an illustrative guidance application having time markers(e.g., marker 210) for a plurality of programs, in accordance with someembodiments of the present disclosure. Display 200, as illustratedincludes a grid of program identifiers with the vertical axis defined bychannel and the horizontal axis defined by predetermined display time,similar to displays 100 and 150 of FIG. 1.

In some embodiments, the guidance application generates a plurality ofmarkers 210 for a plurality of programs with associated programidentifiers displayed in a grid (e.g., of display 200). The generationof markers (e.g., marker 210) may occur at any suitable time, notnecessarily in response to a user input or selection of a program. Forexample, the guidance application may display a grid of programidentifiers, predetermined markers (e.g., marker 210), and any othersuitable information in the form of a program guide. In someembodiments, the guidance application may include more than one markerper program or episode, indicating different extents of condensedcontent. For example, for a program scheduled to be displayed from 8:00pm-9:00 pm, the guidance application may determine condensed contentthat is forty minutes long, and then further condensed content that is25 minutes long and generate markers at 8:20 pm and 8:35 pm,respectively.

As illustrated, program identifier 290 is shown enlarged in FIG. 2. Themarker of markers 210 that corresponds to program identifier 290 ispositioned such that the normally scheduled display time is divided intodurations T1 (e.g., before marker 210) and T2 (e.g., after marker 210),wherein the sum of T1 and T2 corresponds to the original programplayback duration. If the user selects the program before marker 210 at8:35 pm, then there is sufficient time for the user to view theimportant content of the program, which has a duration of T2 (e.g.,twenty minutes in this example). For example, the guidance applicationmay generate the condensed version, having duration T2, starting at 8:35pm when the user selects the program (e.g., and finishing early before 9pm at 8:55 pm). In a further example, if the user selects the programbefore the marker the guidance application may add a portion of asegment to the condensed content to achieve a cumulative playback timeequal to the available playback time (e.g., if a user selects theprogram at 8:35 pm, then the condensed content is twenty-five minuteslong).

As illustrated in FIGS. 1-2, a guidance application may predetermine oneor more markers based on condensing content for time constraints,generate condensed content in response to a user selection, or both.Generation of condensed content for time-constrained viewing allows theuser to enjoy the important aspects of a program without having tofigure out when to fast forward, for example. The generation, andoptional display of, markers allows the guidance application todiscretize the viewing time interval to capture important segments ofthe program as needed to fit within the available time. The generationof condensed content and markers are described further in the context ofFIGS. 6-8.

FIG. 3 shows a block diagram of illustrative arrangement 300 of data andmetadata for generating condensed content, in accordance with someembodiments of the present disclosure. As illustratively shown in FIG.3, media content and corresponding metadata (e.g., collectively referredto as information 310) may be organized by segment, from which atimeline or playback order may be generated (e.g., timeline 370).

Information 310 includes video or audio data of the content (e.g., alinear program), as well as metadata associated with the content such assegments, time tags, keyword tags, any other suitable information, orany combination thereof. In some embodiments, chapter numbers, chaptertitles, character names, actor names, location names, storylines, plots,start times, end times, time durations, keywords, key phrases, and anyother suitable information may be included in metadata of information310. To illustrate, a plurality of segment identifiers of the contentmay each be defined, each having a corresponding start time and end timeand other suitable corresponding information. For example, the secondsegment “S2” may be titled “The Season” and have a start time of“00:24:15,” an end time of “00:38:10,” and character tags “Oliver” and“Ms. Smith.” Metadata may be stored and indexed using any suitabletechnique, file type, database type, field type, data structure, classstructure, and format, having any suitable amount of data correspondingto the content. Information 310 may be available for a plurality ofepisodes (e.g., episodes of one or more seasons, games of one or moretournaments, etc.) of a program. For example, an instance of information310 may be stored for each episode of a program. Data may include audiodata, video data, or both, in any suitable format. For example, data maybe formatted as an MP4 file, a WMV file, an AVI file, a WAV file, anyother suitable encoding format, or any combination thereof. The systemmay include any suitable audio or video codec configured to compress,decompress, or both, the data files.

Based on metadata of information 310, for each segment, importanceinformation may be stored (e.g., in memory), extracted (e.g., by asoftware application executing instructions on stored information),retrieved (e.g., from memory), determined (e.g., based on user profileinformation 390), or otherwise processed. The generation of scores andmetrics is described further in the context of FIG. 7, for example.Importance information may include a segment identifier (e.g., such assegment four “S4”), play times of each segment (e.g., durations), anyother suitable information, or any combination thereof. For example, asillustrated, the program includes ten segments, S1-S10, which arearranged accordingly to playback timeline 370. Playback timeline 370includes the sequence order of the segments, the playback time (e.g.,per segment and/or cumulative), or a combination thereof. Each segmenthas an associated time indicator (e.g., stored in “Time Tags” ofmetadata of information 310) that includes, for example, a start time,an end time, a duration, or a combination thereof.

Timeline 370 illustrates a chronological arrangement of the data ofinformation 310 (e.g., a playback order) for a plurality of segments ofa program. As illustrated, ten segments are shown (e.g., S1-S10). Eachsegment may be defined by one or more time indicators stored in metadataof information 310. For example, a time indicator may include a starttime, an end time, a duration, a sequence index, or any other indicatorof time or sequence corresponding to a segment of a plurality ofsegments of content. The time durations for each segment may be, butneed not be, the same. For example, in some circumstances, content ispartitioned into segments having the same duration (e.g., a one-hourepisode includes four segments of fifteen minutes each). In a furtherexample, in some circumstances, content is partitioned into segmentsthat have differing lengths (e.g., the segments sum to one hour, but donot have the same durations).

In an illustrative example, referencing FIG. 3, content information(e.g., listing of episodes and/or seasons, metadata, storylines) of theentire series may be overwhelming or otherwise include more informationthan desired by a user viewing a display. User profile information 390,stored in suitable memory of one or more devices, may include preferredstorylines, characters, other attributes, keywords, any other suitableuser preferences, user viewing history, user content-purchase history,any other suitable information associated with a user, or anycombination thereof.

Clock/time information 380 includes information such as, for example, acurrent clock time, a clock time associated with a user input orselection, a display time of a program (e.g., start time, end time, orduration), program schedules, any other temporal information, or anycombination thereof. Clock/time information 380 is stored in anysuitable memory on any suitable device or combination of devices. Insome embodiments, for example, clock/time information 380 is determinedby control circuitry. The time may be based on an oscillator circuit(e.g., a “real time clock” or RTC), a time communicated from a networkentity (e.g., to calibrate a software clock), a clock implemented inhardware and/or software, any other suitable time reference, or anycombination thereof.

The guidance application generates condensed content 350, arrangedaccordingly to playback timeline 371 based on the original content(e.g., arranged accordingly to playback timeline 370), time constraints(e.g., current time until an end time), time information (e.g., fromclock/time information 380), and user information (e.g., from userprofile information 390). For example, as illustrated, condensed content350 includes segments S1, S4, S6, S7, S9, and S10 arranged alongplayback timeline 371, which is condensed relative to playback timeline370. To further illustrate, the guidance application has determinedsegments S1, S4, S6, S7, S9, and S10 cumulatively fit within anavailable playback time, and include the important scenes a user may beinterested in.

In an illustrative example, the guidance application generates a displayof program identifiers and a user-selectable cursor. In response to theuser selecting a particular program at a particular clock time, theguidance application retrieves information 310, or portions thereof,including content, metadata, or both. The guidance application alsoretrieves the current time from clock/time information 380, andretrieves the user's profile information from user profile information390. The guidance application determines how much time is available forviewing (e.g., the normal program end time minus the current time), andbased on the available time and the profile information, the guidanceapplication selects a subset of segments of the program for display. Theguidance application then generates for display condensed content 350including the subset of segments.

In a further example, the guidance application generates a display ofprogram identifiers and one or more markers associated with one or moreprogram identifiers. The guidance application retrieves one or moreusers' profile information from user profile information 390. Theguidance application selects a subset of segments for each programassociated with the one or more program identifiers, determines thecumulative duration of the subsets of segments, and then generates theone or more markers based on the cumulative durations. In someembodiments, the markers are arranged at times based on the cumulativeduration of the subset of segments along with any auxiliary content thatis suitable or required for display. The guidance application may alsogenerate for display condensed content 350 when a program identifier isselected by a user at a particular time (e.g., wherein the condensedcontent has a duration suitable for the available viewing time betweenthe particular time and the end time).

FIG. 4 shows a block diagram of illustrative process flow 400 forgenerating condensed content 450 based on metadata 411, in accordancewith some embodiments of the present disclosure. Content 410 may be aprogram, for example, including segments S1, S2, S3, S4, S5, S6, S7, S8,S9, and S10. Each segment has a corresponding duration stored in, orderived from, metadata 411. Each segment also has a corresponding scorestored in, or derived from, metadata 411. When the system receives anindication to generate condensed content, the system may then determinewhich segments to keep or omit to adjust the playback time of thecontent. In some embodiments, the indication arises from user input. Forexample, a user may select a program for viewing at a real time T₁, andthe system may then proceed to generate condensed content 450 to fitwithin a time interval from T₁ to an end time. The end time maycorrespond to a normal playback end time (e.g., as illustrated in aprogram guide partitioned by real time), an event time (e.g., auser-specified end time), any other suitable end time, or anycombination thereof.

In some embodiments, the system sorts the segment identifiers ofsegments of content 410 to generate sorted segment identifiers 420,which are arranged by the respective score in ascending order, asillustrated (e.g., but may alternatively be ordered in descendingorder). In some embodiments, the system need not sort the segmentidentifiers, and may assign a sequencing index to each segment orsegment identifier specifying an ordering. For example, the system mayrank the segments without reordering or sorting the segment identifiers.The system selects set of segment identifiers 430 to include incondensed content 450, and does not select set of segment identifiers440 for inclusion. In some embodiments, as illustrated, the systemapplies threshold 431 to determine a cutoff for selected and unselectedsegment identifiers of sorted segment identifiers 420. To illustrate,the system selects segment identifiers associated with segments S1, S4,S6, S7, S9, and S10, and does not select segment identifiers associatedwith segments S2, S3, S5, and S8.

A user may access content, an application, and other features from oneor more of their devices (i.e., user equipment), one or morenetwork-connected devices, one or more electronic devices having adisplay, or a combination thereof, for example. Any of the illustrativetechniques of the present disclosure may be implemented by a userdevice, a device providing a display to a user, or any other suitablecontrol circuitry configured to generate a display to a user ofsegmented content. FIG. 5 shows generalized embodiments of anillustrative user device. User equipment system 501 may include set-topbox 516 that includes, or is communicatively coupled to, display 512,audio equipment 514, and user input interface 510. In some embodiments,display 512 may include a television display or a computer display. Insome embodiments, user interface input 510 is a remote-control device.Set-top box 516 may include one or more circuit boards. In someembodiments, the one or more circuit boards include processingcircuitry, control circuitry, and storage (e.g., RAM, ROM, Hard Disk,Removable Disk, etc.). In some embodiments, circuit boards include aninput/output path. Each one of user equipment device 500 and userequipment system 501 may receive content and data via input/output(hereinafter “I/O”) path 502. I/O path 502 may provide content and datato control circuitry 504, which includes processing circuitry 506 andstorage 508. Control circuitry 504 may be used to send and receivecommands, requests, and other suitable data using I/O path 502. I/O path502 may connect control circuitry 504 (and specifically processingcircuitry 506) to one or more communications paths (described below).I/O functions may be provided by one or more of these communicationspaths but are shown as a single path in FIG. 5 to avoid overcomplicatingthe drawing. While set-top box 516 is shown in FIG. 5 for illustration,any suitable computing device having processing circuitry, controlcircuitry, and storage may be used in accordance with the presentdisclosure. For example, set-top box 516 may be replaced by, orcomplemented by, a personal computer (e.g., a notebook, a laptop, adesktop), a network-based server hosting a user-accessible clientdevice, a non-user-owned device, any other suitable device, or anycombination thereof. A guidance application may be implanted on userdevice 500, user equipment system 501, any other suitable system, or anycombination thereof.

Control circuitry 504 may be based on any suitable processing circuitrysuch as processing circuitry 506. As referred to herein, processingcircuitry should be understood to mean circuitry based on one or moremicroprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core, or anysuitable number of cores) or supercomputer. In some embodiments,processing circuitry is distributed across multiple separate processorsor processing units, for example, multiple of the same type ofprocessing units (e.g., two Intel Core i7 processors) or multipledifferent processors (e.g., an Intel Core i5 processor and an Intel Corei7 processor). In some embodiments, control circuitry 504 executesinstructions for an application stored in memory (e.g., storage 508).Specifically, control circuitry 504 may be instructed by the applicationto perform the functions discussed above and below. For example, theapplication may provide instructions to control circuitry 504 togenerate the media guidance displays. In some implementations, anyaction performed by control circuitry 504 may be based on instructionsreceived from the application.

In some client-server-based embodiments, control circuitry 504 includescommunications circuitry suitable for communicating with an applicationserver or other networks or servers. The instructions for carrying outthe above-mentioned functionality may be stored on the applicationserver. Communications circuitry may include a cable modem, anintegrated-services digital network (ISDN) modem, a digital subscriberline (DSL) modem, a telephone modem, an ethernet card, or a wirelessmodem for communications with other equipment, or any other suitablecommunications circuitry. Such communications may involve the Internetor any other suitable communications networks or paths. In addition,communications circuitry may include circuitry that enables peer-to-peercommunication of user equipment devices, or communication of userequipment devices in locations remote from each other (described in moredetail below).

Memory may be an electronic storage device such as storage 508 that ispart of control circuitry 504. As referred to herein, the phrase“electronic storage device” or “storage device” should be understood tomean any device for storing electronic data, computer software, orfirmware, such as random-access memory, read-only memory, hard drives,optical drives, solid state devices, quantum storage devices, gamingconsoles, gaming media, or any other suitable fixed or removable storagedevices, and/or any combination of the same. Storage 508 may be used tostore various types of content described herein as well as mediaguidance data described above. Nonvolatile memory may also be used(e.g., to launch a boot-up routine and other instructions). Cloud-basedstorage, for example, may be used to supplement storage 508 or insteadof storage 508.

A user may send instructions to control circuitry 504 using user inputinterface 510. User input interface 510, display 512, or both, mayinclude a touchscreen configured to provide a display and receive hapticinput. For example, the touchscreen may be configured to receive hapticinput from a finger, a stylus, or both. In some embodiments, equipmentdevice 500 may include a front-facing screen and a rear-facing screen,multiple front screens, or multiple angled screens. In some embodiments,user input interface 510 includes a remote-control device having one ormore microphones, buttons, keypads, any other components configured toreceive user input or combinations thereof. For example, user inputinterface 510 may include a handheld remote-control device having analphanumeric keypad and option buttons. In a further example, user inputinterface 510 may include a handheld remote-control device having amicrophone and control circuitry configured to receive and identifyvoice commands and transmit information to set-top box 516.

Audio equipment 514 may be provided as integrated with other elements ofeach one of user device 500 and user equipment system 501 or may bestand-alone units. The audio component of videos and other contentdisplayed on display 512 may be played through speakers of audioequipment 514. In some embodiments, the audio may be distributed to areceiver (not shown), which processes and outputs the audio via speakersof audio equipment 514. In some embodiments, for example, controlcircuitry 504 is configured to provide audio cues to a user, or otheraudio feedback to a user, using speakers of audio equipment 514. Audioequipment 514 may include a microphone configured to receive audio inputsuch as voice commands or speech. For example, a user may speak lettersor words that are received by the microphone and converted to text bycontrol circuitry 504. In a further example, a user may voice commandsthat are received by the microphone and recognized by control circuitry504.

An application (e.g., for generating a display) may be implemented usingany suitable architecture. For example, a stand-alone application may bewholly implemented on each one of user device 500 and user equipmentsystem 501. In some such embodiments, instructions of the applicationare stored locally (e.g., in storage 508), and data for use by theapplication is downloaded on a periodic basis (e.g., from an out-of-bandfeed, from an Internet resource, or using another suitable approach).Control circuitry 504 may retrieve instructions of the application fromstorage 508 and process the instructions to generate any of the displaysdiscussed herein. Based on the processed instructions, control circuitry504 may determine what action to perform when input is received frominput interface 510. For example, movement of a cursor on a displayup/down may be indicated by the processed instructions when inputinterface 510 indicates that an up/down button was selected. Anapplication and/or any instructions for performing any of theembodiments discussed herein may be encoded on computer-readable media.Computer-readable media includes any media capable of storing data. Thecomputer-readable media may be transitory, including, but not limitedto, propagating electrical or electromagnetic signals, or may benon-transitory including, but not limited to, volatile and non-volatilecomputer memory or storage devices such as a hard disk, floppy disk, USBdrive, DVD, CD, media card, register memory, processor cache, RandomAccess Memory (RAM), etc.

In some embodiments, the application is a client-server-basedapplication. Data for use by a thick or thin client implemented on eachone of user device 500 and user equipment system 501 is retrievedon-demand by issuing requests to a server remote from each one of userequipment device 500 and user equipment system 501. For example, theremote server may store the instructions for the application in astorage device. The remote server may process the stored instructionsusing circuitry (e.g., control circuitry 504) and generate the displaysdiscussed above and below. The client device may receive the displaysgenerated by the remote server and may display the content of thedisplays locally on user device 500. This way, the processing of theinstructions is performed remotely by the server while the resultingdisplays (e.g., that may include text, a keyboard, or other visuals) areprovided locally on user device 500. User device 500 may receive inputsfrom the user via input interface 510 and transmit those inputs to theremote server for processing and generating the corresponding displays.For example, user device 500 may transmit a communication to the remoteserver indicating that an up/down button was selected via inputinterface 510. The remote server may process instructions in accordancewith that input and generate a display of the application correspondingto the input (e.g., a display that moves a cursor up/down). Thegenerated display is then transmitted to user device 500 forpresentation to the user.

In some embodiments, the application is downloaded and interpreted orotherwise run by an interpreter or virtual machine (e.g., run by controlcircuitry 504). In some embodiments, the application may be encoded inthe ETV Binary Interchange Format (EBIF), received by control circuitry504 as part of a suitable feed, and interpreted by a user agent runningon control circuitry 504. For example, the application may be an EBIFapplication. In some embodiments, the application may be defined by aseries of JAVA-based files that are received and run by a local virtualmachine or other suitable middleware executed by control circuitry 504.

In some embodiments, a system may include a user interface, withprocessing occurring remotely (e.g., at a network entity). In someembodiments, an application (e.g., a guidance application) fordisplaying condensed content may be implemented on one or more devicesthat do not include user devices. In some embodiments, control circuitryis configured to access content, identify segments, and generate fordisplay an informational presentation arranged in suitable way. In someembodiments, application may pre-determine segments of condensed contentbased on timing constraints. For example, the application may generate atable for each program of start time ranges, and for each start timerange, store a corresponding set of segments that can be viewed in aremaining time interval (e.g., the normal end time of the program aspresented on a media guide).

FIG. 6 is a flowchart of illustrative process 600 for generatingcondensed content, in accordance with some embodiments of the presentdisclosure. The illustrative steps of process 600 may be performed by aguidance application implemented on, for example, user device 500 ofFIG. 5, user equipment system 501 of FIG. 5, a network entity (e.g., aserver) communicatively coupled to user device 500, user equipmentsystem 501, or a display device, any other suitable computing device, orany combination thereof.

Step 602 includes a guidance application receiving a display commandindicating that a content item is to be displayed. In some embodiments,the guidance application identifies the content item based on whichprogram is currently highlighted by a displayed cursor of a guidanceapplication. In some embodiments, the guidance application identifiesthe content item based on user input. In some embodiments, the guidanceapplication identifies the content item based on which content item iscurrently being displayed, was previously displayed, is scheduled fordisplay currently, or is otherwise highlighted relative to other contentitems. In some embodiments, the guidance application identifies thecontent item as one content item of a plurality of content items, andprocess 600 is performed for each content item. In some embodiments, theguidance application is configured to receive user input to a userinterface (e.g., user input interface 510). The user input may include,for example, haptic input to a touchscreen, depression of buttons of akeypad, voice input to an audio interface (e.g., audio equipment 514),any other input by a user to the system, or any combination thereof. Forexample, a user may use directional keys on a keypad of a remote-controldevice configured to communicate with equipment device 500. In a furtherexample, a user may provide a haptic selection on a touchscreen of userdevice 500. In some embodiments, the system is configured to wait foruser input, or otherwise not proceed from step 602 until user input isreceived.

In some embodiments, the guidance application generates a grid-baseddisplay having a timeline (e.g., a time axis) and a grouping (e.g., achannel axis). In some embodiments, the display includes a display ofsegment identifiers for a program, arranged horizontally by episode andseason index into rows, with each row corresponding to a channel. Insome embodiments, the display includes content information such as, forexample, segment identifiers (e.g., episode identifiers, chapteridentifiers, segment descriptions, segment plot, segment title, segmentcharacters, segment length or duration, episode year), which segmentsare currently scheduled for display (e.g., part of condensed content),program information (e.g., information about the program as a whole suchas producer, year, rating), time indicators (e.g., real time interval,end time, start time, condensed content duration, or other suitabletemporal indicator), storyline information (e.g., storyline identifier,storyline description, storyline), any other suitable information, orany combination thereof.

Step 604 includes the guidance application determining a display starttime, wherein the display start time is based on when the displaycommand was received. In some embodiments, the guidance applicationdetermines the display start time base on a real time clock implementedin hardware of control circuitry (e.g., an oscillator circuit andbattery). In some embodiments, the guidance application accesses aclock-based application to retrieve the current time. In someembodiments, the guidance application may determine the next displaystart time interval, wherein the start times are discretized (e.g., adisplay start time is in increments of five minutes or other interval).

Step 606 includes the guidance application determining a plurality ofsegments arranged according to a playback order and defined in metadataby a segment start time and a segment end time. In some embodiments, theguidance application retrieves metadata that includes the playbackorder, and segment time information. In some embodiments, segmentidentifiers (e.g., indices, names, or other identifiers) are used torefer to segments during processing. The playback order need not beincluded explicitly, as the segments may be identified by their playbackindex, and no additional playback order is needed.

Step 608 includes the guidance application determining a display endtime, wherein the display start time and the display end time define aplayback time interval. In some embodiments, the guidance applicationselects the normally scheduled display end time as the display end time.In some embodiments, a user may specify one or more events in a guidanceapplication, a calendar application accessible by the guidanceapplication, or other suitable application, and the guidance applicationmay select the event time as the display end time. For example, thedisplay end time may coincide with a pre-planned activity, a differentprogram viewing, a software alarm, a suitable calendar item, or anyother suitable event. The display end time may be before, after, orcoincide with the normally scheduled display end time, in accordancewith some embodiments of the present disclosure.

Step 610 includes the guidance application selecting a set of segmentsbased on the profile information, wherein the set of segments have acumulative playback time less than or equal to the playback timeinterval. In some embodiments, the guidance application assigns eachsegment a score based on the user profile information, metadata, anyother suitable information, or any combination thereof. The descriptionof process 700 of FIG.7 includes further description of selecting theset of segments based on available or determined information. In someembodiments, the guidance application selects segment identifiers thatsatisfy one or more criteria, and then proceeds to step 612.

Step 612 includes the guidance application generating for display acondensed version of the content item, according to the playback orderincluding the set of segments of the content item. In some embodiments,the guidance application causes transmission of video data to a displaydevice (e.g., display 512) to generate the display on the display device(e.g., display 512). For example, control circuitry may transmit ahigh-definition multimedia interface (HDMI) signal to the displaydevice, over a suitable cable or connection, to generate a gridincluding the program identifiers (e.g., similar to display 100 of FIG.1). In some embodiments, the guidance application adds auxiliary contentsuch as advertisements, credits, or other content to the selected set ofsegments, taking into account the available real time interval allcontent must fit within.

FIG. 7 is a flowchart of illustrative process 700 for selecting segmentsfor display under time constraints, in accordance with some embodimentsof the present disclosure. The illustrative steps of process 700 may beperformed by a guidance application implemented on, for example, userdevice 500 of FIG. 5, user equipment system 501 of FIG. 5, a networkentity (e.g., a server) communicatively coupled to user device 500, userequipment system 501, or a display device, any other suitable computingdevice, or any combination thereof.

Step 702 includes a guidance application determining a score for eachsegment of a plurality of segments of media content. In someembodiments, the guidance application retrieves a score for each segmentstored in metadata (e.g., a pre-computed score). For example, animportance score for each segment may be stored in the metadata,allowing segments to be compared and/or ranked by importance. In someembodiments, the guidance application determines a score for eachsegment based on information stored in metadata. For example, themetadata may include popularity information, storyline information,segment identifiers, playback order, any other suitable information, orany combination thereof that the guidance application may use to sort orrank the segments. In some embodiments, the guidance applicationdetermines a score for each segment based on user profile informationand the metadata. For example, the guidance application may retrieveinformation such as keyword tags for each segment and may also retrieveuser profile information such as keywords corresponding to viewingpreferences. By comparing the metadata tags to user preferences, theguidance application may determine a relevancy of each segment to theuser and accordingly assign a higher score to more relevant segments. Insome embodiments, the guidance application determines the score based ona weighted consideration of user preferences, segment metadata, segmentduration, segment attributes, segment index, any other suitableinformation, or any combination thereof.

In some embodiments, at step 702, the guidance application determines arelatively higher score for a first segment, a last segment, or both. Insome embodiments, at step 702, the guidance application determines arelatively higher score for shorter segments (e.g., more shortersegments may be included in a real time interval) or longer segments(e.g., longer segments may include more important plot arcs). In someembodiments, the guidance application may determine one or more favoritecharacters, actors, locations, or other attributes from the user'sprofile, and determine a relatively higher score for segments havingkeyword tags in metadata that match the favorite attributes. In someembodiments, the guidance application may determine one or more tagscreated by the user and stored in the user's profile, and determine arelatively higher score for segments having keyword tags in metadatathat match the one or more tags. Table 1 shows some metrics that may beused in determining segments' scores. For example, one or moreillustrative metrics of Table 1 may be assigned a number value, and ascore may be determined as an average of the values, a weighted averageof the values, a sum of the values, a product of values, a subset ofvalues, any other suitable composite value based on the values, or anycombination thereof.

TABLE 1 Illustrative metrics for scoring segments. Metric Name Based on,e.g.: Popularity Views, Likes, Rating, Ranking, Survey DurationMetadata, User Profile Information Index Metadata, User ProfileInformation Attributes Metadata, User Profile information ImportanceMetadata, User Profile Information

In an illustrative example, a popularity metric, as included in Table 1,may be determined based on a number of views of a segment, a number of“likes” of a segment (e.g., from a social media application), a ratingof a segment, a ranking of a segment relative to other segments, asurvey result or a statistical result from a plurality of users' input,any other suitable information related to a segment's popularity, or anycombination thereof. The guidance application may receive informationfrom one or more applications (e.g., social media applications, surveyapplications, user-tracking applications), one or more databases (e.g.,a media guidance database including view, rating, or rankinginformation), or a combination thereof.

In an illustrative example, a duration metric, as included in Table 1,may be determined based on the playback length of a segment asdetermined from metadata, duration preferences, any other suitableinformation related to a playback length of a segment, or anycombination thereof. The guidance application may retrieve metadata,which may include temporal information from which a segment's durationmay be determined. The guidance application may also determine one ormore criteria for determining the duration metric. For example, the userprofile information may include the user's preferences towardsrelatively short or long segments. In a further example, the criteriamay include a minimum duration, a maximum duration, or both (e.g., arange) for use in generating the metric. In some embodiments, segmentshaving a duration shorter than a threshold may be assigned a metricvalue that is either less than or greater than that assigned to asegment having a duration longer than the threshold. In someembodiments, the duration metric may be proportional to, inverse to, orotherwise functionally dependent on the segment's duration.

In an illustrative example, an index metric, as included in Table 1, maybe determined based on the playback index of a segment as determinedfrom metadata, index preferences, any other suitable information relatedto a playback index of a segment, or any combination thereof. Theplayback index is the sequence position of the segment (e.g., an indexof “3” is the third segment in playback order). The guidance applicationmay retrieve metadata, which may include temporal information, indexinformation, or both, from which a segment's index may be determined.The guidance application may also determine one or more criteria fordetermining the index metric. For example, the user profile informationmay include the user's preferences towards relatively early or latesegments. In a further example, the criteria may include a metadata tagfor a program indicating that the last segment is always important. Insome embodiments, segments having an index less than a threshold may beassigned a metric value that is either less than or greater than thatassigned to a segment having an index later than the threshold. In someembodiments, the index metric may be proportional to, inverse to, orotherwise functionally dependent on the segment's index.

In an illustrative example, an attributes metric, as included in Table1, may be determined based on attributes of a segment as determined frommetadata, user profile information, any other suitable informationrelated to attributes of a segment, or any combination thereof.Attributes include, for example, characters, locations, plot arcs, genretype, scenes, entities or organizations, any other aspects depicted in asegment, or any combination thereof. Attributes may also includenon-depicted information such as, for example, actors, actresses,directors, or other real-world entities associated with a segment. Theguidance application may retrieve metadata, which may include attributeinformation (e.g., tags), from which a segment's attributes may bedetermined. The guidance application may also determine one or morecriteria for determining the attribute metric. For example, the userprofile information may include the user's preferences towardsattributes (e.g., favorite attributes, least favorite attributes,most-watched attributes). In a further example, the criteria may includea metadata tag for a program indicating that one or more attributes arealways important (e.g., a main character or central location). In someembodiments, segments having fewer attributes than a threshold may beassigned a metric value that is less than that assigned to a segmenthaving more attributes than the threshold. In some embodiments, theattribute metric may be proportional to, or otherwise functionallydependent on the segment's number of associated attributes. In someembodiments, the attributes metric includes an average, weightedaverage, or other composite value based on sub-metric values for eachattribute of a segment (e.g., each attribute has an associatedsub-metric value, which collectively are used to determine theattributes metric).

In an illustrative example, an importance metric, as included in Table1, may be determined based on the relative importance of a segmentrelative to other segments, any other suitable information related toimportance of a segment, or any combination thereof. In someembodiments, importance is determined based on metadata tags thatinclude an importance ranking (e.g., as determined by the content'screator, or broadcast channel), users' feedback on the segment'simportance (e.g., via a survey or other conduit for user input), or anyother information. Attributes may also be used to determine howimportant a segment is (e.g., segments having more associated attributesmay be more important). The guidance application may retrieve metadata,which may include tags, from which a segment's importance may bedetermined. The guidance application may also determine one or morecriteria for determining the importance metric. For example, the userprofile information may include the user's preferences towards aparticular plot arc/character/location or other attribute, and theguidance application may assign a relatively higher importance metric tosegments associated with the attributes. In some embodiments, animportance metric may be used to weigh other metrics. For example, theimportance metric may include metric values (i.e., weightings) for eachof the other metrics, such that their relative importance can beweighed, and a score may be determined based on a weighted combination(e.g., a weighted sum). In some embodiments, for example, the program'sgenre or other aspects may be used to determine an importance metric.For example, for a comedy, the user profile information may indicatethat the user may appreciate comedic segments, and in which case the“must watch” (i.e., important) segments will total to 50 minutes (e.g.,most of the program is comedic). Alternatively, for a drama, the usermay appreciate only a few segments and hence the important segments maytotal to only 25 minutes. Accordingly, the guidance application may usethe importance metric as a score by itself, and accordingly generatecondensed content based on the user profile information.

Step 704 includes the guidance application determining a duration foreach segment of the plurality of segments and a real time interval overwhich condensed content is to be displayed. In some embodiments, themetadata includes time indicators such as segment start time, segmentend time, segment duration, cumulative content duration (e.g., at theend of each segment), or a combination thereof. The guidance applicationmay determine the duration directly (e.g., retrieving the durationdirectly from metadata), determine the duration based on the start timeand end time for the segment (e.g., by taking difference), determine theduration based on a start time of a segment and a start time of asubsequent segment (e.g., by taking a difference), determine theduration based on segment index (e.g., when all segments are the sameduration, and that duration is determinable), or otherwise determine theduration of each segment based on time indicators or playback orderinformation.

Step 706 includes the guidance application sorting, ranking, or both,the segment identifiers based at least in part on the score determinedat step 702. In some embodiments, step 706 may be included with step 702as a single process step. In some embodiments, the guidance applicationsorts the segment identifiers (e.g., segment index, title, or any othersuitable identifier) in either ascending order or descending order. Insome embodiments, step 706 need not be performed, as the score is usedto provide the rankings, and no rearrangement is needed.

Step 708 includes the guidance application selecting a set of segmentidentifiers of the plurality of segment identifiers for display. In someembodiments, the guidance application selects segment identifiersassociated with segments having a score greater than a threshold and acumulative duration that fits within the real time interval. In someembodiments, for example, the guidance application selects the segmentshaving the highest score, starting from the highest score down to asegment that causes the cumulative duration to be equal or less than thereal time interval. For example, Table 2 shows a sequence of sortedsegment identifier.

TABLE 2 Illustrative segment identifiers with scores. Sort Index ScoreSegment Identifier Duration 1 10 Segment 3 10:00  2 9.1 Segment 4 7:00 37 Segment 8 7:00 4 6 Segment 7 6:00 5 5.2 Segment 1 8:00 6 5.1 Segment 610:00  7 5.0 Segment 2 5:00 8 1 Segment 5 7:00The “sort index” of Table 2 is the index of the segment identifierssorted by score (e.g., highest score is “1” and the lowest score is “8”out of eight segments). The “segment identifiers” shown in Table 2 arethe segments' respective playback indices (e.g., “Segment 2” is thesecond segment in the original playback order). The segment identifiersin Table 2 are sorted by score in descending order for illustration.Segments 1-8 correspond to an hour-long program, and the durations sumto sixty minutes. If the user selects this program twelve minutes intothe normally scheduled display time, leaving forty-eight minutes of realtime interval, the guidance application may select sort indices 1-6(i.e., Segment Identifiers 3, 4, 8, 7, 1, and 6, in the illustratedexample), as they have the highest scores and have cumulative durationof forty-eight minutes. In other words, if the program is scheduled tobe displayed from 7:00 pm to 8:00 pm commercial free, and the userselects the program at 7:12 pm, the guidance application generatescondensed content that includes a playback order of Segments 1, 3, 4, 6,7, and 8, having a playback duration of forty-eight minutes.

Step 710 includes the guidance application generating a display (e.g.,for display device 512) based on the selected set of segments of step708. In some embodiments, the guidance application generates for displaycondensed content within time constrains. In some embodiments, theguidance application transitions from displaying a guide or content todisplaying condensed content using any suitable technique. For example,the guidance application may rearrange displayed features, removedisplayed features, add displayed features, zoom in or out of portionsof the first display, or otherwise provide a transition from a displayedguide or content to the display of condensed content. In a furtherexample, the guidance application may remove information that no longercorresponds to the condensed content (e.g., modify a content summary orduration displayed in a media guide). In some embodiments, controlcircuitry transmits video data to the display device (e.g., display 512)to generate the display on the display device (e.g., display 512). Forexample, the control circuitry may transmit a high-definition multimediainterface (HDMI) signal to the display device, over a suitable cable orconnection, to generate a grid including the program identifiers (e.g.,similar to display 100 of FIG. 1).

FIG. 8 is a flowchart of illustrative process 800 for selecting segmentsfor display under time constraints based on viewing behavior, inaccordance with some embodiments of the present disclosure. Theillustrative steps of process 800 may be performed by a guidanceapplication implemented on, for example, user device 500 of FIG. 5, userequipment system 501 of FIG. 5, a network entity (e.g., a server)communicatively coupled to user device 500, user equipment system 501,or a display device, any other suitable computing device, or anycombination thereof.

Step 802 includes the guidance application identifying a program. Insome embodiments, the guidance application identifies the program basedon which program is currently highlighted by a displayed cursor of aguidance application. In some embodiments, the guidance applicationidentifies the program based on user input. In some embodiments, theguidance application identifies the program based on which program iscurrently being displayed, was previously displayed, is scheduled to bedisplayed currently, or is otherwise highlighted relative to otherprograms. In some embodiments, the guidance application identifies theprogram as one program of a plurality of programs, and process 800 isperformed for each program. In some embodiments, the guidanceapplication is configured to receive user input to a user interface(e.g., user input interface 510). The user input may include, forexample, haptic input to a touchscreen, depression of buttons of akeypad, voice input to an audio interface (e.g., audio equipment 514),any other input by a user to the system, or any combination thereof. Forexample, a user may use directional keys on a keypad of a remote-controldevice configured to communicate with equipment device 500. In a furtherexample, a user may provide a haptic selection on a touchscreen of userdevice 500. In some embodiments, the system is configured to wait foruser input, or otherwise not proceed from step 802 until user input isreceived.

In some embodiments, at step 802, the guidance application receives auser selection of a program and, in response to the selection, retrievesmetadata for the program. For example, a user may select a displayedprogram identifier in a guidance application, and the guidanceapplication may then retrieve information about the program. In someembodiments, step 802 includes the guidance application retrievinginformation corresponding to the program. In some embodiments, theguidance application retrieves the information for the program inresponse to identifying the program. For example, the system mayretrieve metadata and user profile information from local memory (e.g.,a local hard disk drive, solid state hard drive, or storage 508), adatabase (e.g., local or remote), a network device (e.g., a server,cloud-based computing device, or central computing device), any othersuitable data source, or any combination thereof. In some embodiments,for example referencing FIG. 3, the guidance application may retrieveinformation 310 in response to identifying the program. In a furtherexample, the guidance application may retrieve information 310 for theprogram and construct, and store in memory (e.g., storage 508),condensed content 350 for one or more time intervals based oninformation 310. In a further example, the guidance application mayretrieve (e.g., from storage 508) information 310 and generate timeline371, or any other suitable timeline-like data object (e.g., a playbackorder), and store timeline 371 in memory (e.g., storage 508), inpreparation for generating a display. In some embodiments, metadatacorresponding to segments of the video content of the program may begenerated using artificial intelligence (AI) processes, configured totag content as it is produced. In some embodiments, metadata may begenerated during or shortly after content generation (e.g.,preprocessing recordings or episodes), at content display time (e.g.,before, during, or after), at content recording, or a combinationthereof.

Step 804 includes the guidance application determining a clock time andan end time, thus defining a real time interval. Control circuitry mayinclude an oscillator circuit (e.g., an RTC), for example, that may bereferenced to a time standard (e.g., a software clock that is updatedbased on a network entity). The end time may coincide with a scheduledend time of a program, an event inputted by a user, or other temporalpoint indicating the end of the available viewing window. For example,in some embodiments, the guidance application stores the clock time thatit receives the user selection from step 802, and then determines theregularly scheduled end time of the program. The real time interval isthe span of time between the clock time of step 802 and the end time. Insome embodiments, the guidance application rounds the real time intervalto a predetermined temporal resolution (e.g., rounds down to ensure thecondensed content fits in the interval). For example, the guidanceapplication may determine real time intervals in increments of fiveminutes. To illustrate, if at 8:14 pm a user selects a program scheduledto be displayed between 8:00 pm and 9:00 pm, the real time interval maybe determined to be forty-six minutes (e.g., difference), forty-fiveminutes (e.g., rounded to five-minute intervals), forty minutes (e.g.,rounded to ten-minute intervals), or any other suitable interval.

Step 806 includes the guidance application comparing playback time toclock time. In some embodiments, step 806 includes the guidanceapplication evaluating segments of the program to determine a subset ofsegments having a playback time that fits within the real time intervalfrom the clock time to the end time determined at step 804. Some resultsof step 806 are illustrated in FIG. 8, in connection with steps 808,810, and 812. For example, the playback time and the real time intervalmay be approximately equal, or one may be greater than the other. Theguidance application responds differently to these circumstances. Insome embodiments, the guidance application determines a differencebetween the playback time of one or more segments and the real timeinterval. In some embodiments, the guidance application determines acontent start time be subtracting the playback time from the end time,and then compares the content start time to the clock time.

Step 808 includes the guidance application causing the content to bedisplayed without condensing. For example, if the real time interval canaccommodate all segments of the program, or nearly accommodate allsegments of the program, then the guidance application does not generatecondensed content. For example, if a user selection occurs at 8:04 pm ofa program scheduled for 8:00 pm-9:00 pm, the guidance application maydetermine that the real time interval is sufficient to display allsegments. This may be especially useful when segments are longer thanthe difference between the real time interval and the regularlyscheduled duration of the program. To illustrate, condensing anhour-long program to fifty-six minutes might not be preferred in somecircumstances. In a further example, if the user selection occurs at8:04 of a program scheduled for 8:00 pm-9:00 pm, the guidanceapplication may cause the program to be displayed as scheduled and theuser misses four minutes of content.

Step 810 includes the guidance application causing condensed content tobe displayed, including all segments predetermined as being important.For example, if the real time interval cannot accommodate all segmentsof the program, but can accommodate the subset of segments predeterminedto be important, the guidance application may display the condensedcontent based on a determined playback order. For example, if a userselection occurs at 8:24 pm of a program scheduled for 8:00 pm-9:00 pm,and the cumulative duration of the important segments is thirty-twominutes, the guidance application may determine that the real timeinterval (e.g., thirty-six minutes in this example) is sufficient todisplay all important segments. This may be especially useful when theguidance application predetermines one or more versions of condensedcontent that include important segments. To illustrate, the guidanceapplication may pre-generate one or more versions of condensed contenthaving progressively shorter durations, and then, based on the real timeinterval available for display, select the version of condensed contentthat best fits within the real time interval. In some embodiments, theguidance application may determine that while a condensed version doesnot fit exactly within the real time interval, it is close enough thatno further condensing is required, and some of the condensed versionneed not be displayed. For example, if the user selection occurs at 8:24of a program scheduled for 8:00 pm-9:00 pm, and the shortest condensedversion of content of thirty-eight minutes long, the guidanceapplication may cause the condensed content to be displayed, minus thefirst two minutes so that the condensed content fits within thirty-sixminutes. In a further example, if the user selection occurs at 8:24 of aprogram scheduled for 8:00 pm-9:00 pm, and the shortest condensedversion of content of thirty-eight minutes long, the guidanceapplication may cause the condensed content to be displayed, minus thefirst two minutes of the least important segment so that the condensedcontent fits within thirty-six minutes.

Step 812 includes the guidance application causing condensed content tobe displayed based on the available real time interval and user profileinformation. For example, if the real time interval cannot accommodateall segments of the program, nor a subset of segments predetermined tobe important, the guidance application may generate condensed contentthat fits within the real time interval. For example, if a userselection occurs at 8:24 pm of a program scheduled for 8:00 pm-9:00 pm,the guidance application may determine that the real time interval isthirty-six minutes. In some embodiments, the guidance application maypre-generate one or more versions of condensed content havingprogressively shorter durations, and then, based on the real timeinterval available for display, select the version of condensed contentthat best fits within the real time interval. In some embodiments, theguidance application may determine that while a condensed version doesnot fit exactly within the real time interval, it is close enough thatno further condensing is required, and some of the condensed versionneed not be displayed. In some embodiments, the guidance applicationselects a subset of segments based on user profile information, forwhich the cumulative playback time fits within the real time interval.

In an illustrative example, consider a user that is interested inprogram “NCIS” which is scheduled from 8 pm to 9 pm. The current time is8:14 pm (e.g., similar to that illustrated in FIG. 1). Since user hasmissed some of at least one initial segment, the guidance applicationmust determine how to generate the content for display. The guidanceapplication may select among a plurality of viewing options in some suchcircumstances. In some embodiments, the guidance application maydetermine that the user can catch up on the program in its entirety frombeginning. For example, the guidance application may generate the fullcontent (i.e., all segments), and determine a display start time of 8:14pm (e.g. the user can watch without missing any segments, but theprogram will end at 9:14 pm instead of 9:00 pm). In some embodiments,the guidance application may provide for a fast catchup of any missedsegments and then watch remaining segments live. For example, theprogram still has a display end time of 9 pm, but the faster catchup ofinitial missed segments means missed segments are displayed onlypartially or sped-up in payback speed, which may lead to a sub-optimaluser experience. In some embodiments, the guidance application generatesa condensed version of the program to fit within the remaining real timeinterval ending at the normally scheduled end time. In some embodiments,the guidance application identifies a time marker associated with acondensed version of the content and generates the condensed content fordisplay at the time indicated by the marker, or at the current time(e.g., although the condensed version may end before the normallyscheduled end time).

FIG. 9 is a flowchart of illustrative process 900 for generating amarker indicative of condensed content, in accordance with someembodiments of the present disclosure. The illustrative steps of process900 may be performed by a guidance application implemented on, forexample, user device 500 of FIG. 5, user equipment system 501 of FIG. 5,a network entity (e.g., a server) that optionally may be communicativelycoupled to user device 500, user equipment system 501, or a displaydevice, any other suitable computing device, or any combination thereof.

Step 902 includes the guidance application identifying a content item,such as a program, having a normally scheduled start time and a normallyscheduled end time. In some embodiments, the guidance applicationidentifies the content item from among a plurality of content items. Forexample, the illustrative steps of process 900 may be performed for eachcontent item of the plurality of content items. In some embodiments,step 902 includes the guidance application retrieving informationcorresponding to the content item. In some embodiments, the guidanceapplication retrieves the information for the content item in responseto identifying the content item. For example, the system may retrievemetadata and user profile information from local memory (e.g., a localhard disk drive, solid state hard drive, or storage 508), a database(e.g., local or remote), a network device (e.g., a server, cloud-basedcomputing device, or central computing device), any other suitable datasource, or any combination thereof. In some embodiments, for examplereferencing FIG. 3, the guidance application may retrieve information310 in response to identifying the content item. The guidanceapplication need not perform step 902 in response to a user selection, acurrently displayed content item, or any other viewing-based stimulus.For example, the guidance application may identify a content item basedon a list of content items, a scheduled performance of step 902, inresponse to a request (e.g., from a host application, user device, orother application or device), or at any other suitable time.

Step 904 includes the guidance application determining a plurality ofsegments of the content item, which have a first playback time. Thesegments are arranged according to a playback order, and each segment isdefined in metadata by a segment start time and a segment end time. Insome embodiments, the guidance application retrieves metadata thatincludes the playback order and segment time information. In someembodiments, segment identifiers (e.g., indices, names, or otheridentifiers) are used to refer to segments during processing (e.g.,process 900). The playback order need not be included explicitly, as thesegments may be identified by their playback index, and no additionalplayback order is needed.

Step 906 includes the guidance application selecting a set of segmentsof the plurality of segments. In some embodiments, the guidanceapplication selects the set of segments based on profile information(e.g., of a typical user, general viewer statistics, or a particularuser). The set of segments have a second playback time that is less thanthe first playback time. In some embodiments, the guidance applicationassigns each segment a score based on the user profile information,metadata, any other suitable information, or any combination thereof.The description of process 700 of FIG.7 includes further description ofselecting the set of segments based on available or determinedinformation. In some embodiments, the guidance application selectssegment identifiers that satisfy one or more criteria, and then proceedsto step 908.

Step 908 includes the guidance application generating a grid fordisplay. The grid includes a plurality of content identifiers includinga content identifier for the content item identified at step 902. Insome embodiments, the guidance application causes the control circuitryto transmit video data to a display device (e.g., display 512) togenerate a display on the display device (e.g., display 512). Thedisplay may include episode identifiers, time indicators, ratings,content descriptions, any other suitable information, any other suitablefeatures, or any combination thereof. For example, the control circuitrymay transmit a high-definition multimedia interface (HDMI) signal to thedisplay device, over a suitable cable or connection, to generate a gridincluding the episode identifiers (e.g., similar to the displays ofFIGS. 1-2). The grid may include two primary axes, which are normal toeach other. Arranged along one axis are a plurality of channels orcontent providers. Arranged along the other axis are a plurality of timeindicators, such that content items for each channel or content providerare arranged in an order of scheduled display time. The grid includes aplurality of content identifiers, each corresponding to a respectivecontent item. For example, displays 100 and 150 of FIG. 1, and display200 of FIG. 2, illustrate content identifiers arranged in a grid havingtwo axes.

Step 910 includes the guidance application indicating a marker time onthe grid, wherein the difference between the normally scheduled end timeand the marker time is at least equal to the second playback duration.In some embodiments, the guidance application stores marker informationindicative of the marker time as part of the metadata. For example, themarker information may include one or more time tags (e.g., as shown byinformation 310 of FIG. 3). In a further example, marker information mayinclude a start time at which there is sufficient time to display theset of segments of step 906. To illustrate, the marker indicates a starttime of the available time interval, wherein the playback time of theset of segments (e.g., the condensed content) extends from the starttime to the normally scheduled end time of the content item (e.g., asillustrated by marker 101 of display 100 of FIG. 1). In someembodiments, the guidance application generates a marker on a displayedgrid to provide a visual indication of the marker time. For example, themarker time may include a time when the content item must begin beingdisplayed by to accommodate the playback time of the set of segments.The marker may include any suitable shape, size, color, rendering,icons, text, images, or other visual attributes, which may be overlaidon a grid, arranged relative to the grid, incorporated into a displayedcontent identifier, or otherwise included in a display of contentidentifiers.

In an illustrative example, the guidance application may repeat process900 for each content item of a plurality of content items to generatefor display a plurality of markers, each of the plurality of markerscorresponding to a respective content item. Display 200 of FIG. 2 showsa displayed grid and a plurality of markers (e.g., each generated usingprocess 900). In some embodiments, the guidance application selects morethan one set of segments of the plurality of segments based on profileinformation, having respective playback times. The guidance applicationmay then generate for display more than one marker on the gridindicating a respective marker time for each playback duration. Forexample, each content identifier may have one or more associatedmarkers. As illustrated by display 200 of FIG. 2, “America's Got Talent”has two associated markers, corresponding to two sets of segments havingdifferent cumulative playback lengths and thus different marker times.Accordingly, metadata associated with a content item may include markerinformation for one or more markers, that correspond to respective setsof segments of the content item (e.g., respective versions of condensedcontent)

In an illustrative example, the illustrative steps of process 900 neednot be performed at the same time, within the same application, or onthe same device. For example, a network entity may perform steps 902,904, 906, and 910, thus storing marker information in metadataassociated with the content item. The network entity may perform thesesteps prior to a display of content identifiers. For example, the markerinformation may be stored in metadata minutes, days, or even weeks (orlonger) before the content item is scheduled for display. When a contentidentifier corresponding to the content item is displayed in a grid(e.g., step 908) at a later time, for example, a guidance applicationmay further perform step 908 to generate a marker for display with thegrid based on the stored marker information. Step 908 may includestoring marker information, generating a marker for display, or both.

For any suitable of steps of processes 600, 700, 800, and 900, controlcircuitry of the system transmits video data to the display device(e.g., display 512) to generate the display on the display device (e.g.,display 512). The display may include episode identifiers, timeindicators, any other suitable features, or any combination thereof. Forexample, the control circuitry may transmit a high-definition multimediainterface (HDMI) signal to the display device (e.g., display 512), overa suitable cable or connection, to generate a grid including the programidentifiers (e.g., similar to display 100 of FIG. 1).

It is contemplated that the steps or descriptions of FIGS. 6-9 may beused with any other embodiment of this disclosure. In addition, thesteps and descriptions described in relation to FIGS. 6-9 may be done inalternative orders or in parallel to further the purposes of thisdisclosure. For example, each of these steps may be performed in anyorder or in parallel or substantially simultaneously to reduce lag orincrease the speed of the system or method. Any of these steps may alsobe skipped or omitted from the respective processes. Furthermore, itshould be noted that any of the devices or equipment discussed inrelation to FIG. 5, a suitable network entity (e.g., a server), or acombination thereof, could be used to perform one or more of the stepsin FIGS. 6-9. Furthermore, it should be noted that the features andlimitations described in any one embodiment may be applied to any otherembodiment herein, and flowcharts or examples relating to one embodimentmay be combined with any other embodiment in a suitable manner, done indifferent orders, performed with addition steps, performed with omittedsteps, or done in parallel. For example, each of these steps may beperformed in any order or in parallel or substantially simultaneously toreduce lag or increase the speed of the system or method. In addition,the systems and methods described herein may be performed in real time.It should also be noted that the systems and/or methods described abovemay be applied to, or used in accordance with, other systems and/ormethods.

The above-described embodiments of the present disclosure are presentedfor purposes of illustration and not of limitation, and the presentdisclosure is limited only by the claims that follow. Furthermore, itshould be noted that the features and limitations described in any oneembodiment may be applied to any other embodiment herein, and flowchartsor examples relating to one embodiment may be combined with any otherembodiment in a suitable manner, done in different orders, or done inparallel. In addition, the systems and methods described herein may beperformed in real time. It should also be noted, the systems and/ormethods described above may be applied to, or used in accordance with,other systems and/or methods.

1. A method for displaying condensed content based on time constraints,the method comprising: receiving a display command indicating that acontent item is to be displayed; determining a display start time,wherein the display start time is based on when the display command wasreceived; determining a plurality of segments of the content item,wherein the segments are arranged according to a playback order, andwherein each segment is defined in metadata by a segment start time anda segment end time; determining a display end time, wherein the displayend time coincides with a scheduled end time for the content item,wherein the display start time and the display end time define aplayback time interval over which portions of the content item are to bedisplayed; selecting a set of segments based on profile information,wherein the cumulative playback time of the set of segments is less thanor equal to the playback time interval; and generating for display acondensed version of the content item, according to the playback ordercomprising the set of segments of the content item.
 2. The method ofclaim 1, further comprising: determining a playback score for eachsegment of the plurality of segments based on the profile information;sorting, by the playback scores, a plurality of identifiers for thesegments to generate a sequence of playback scores sorted identifiers;wherein selecting the set of segments comprises selecting a set ofconsecutive identifiers from the sequence of playback scores sortedidentifiers, wherein each selected identifier is associated with aplayback score greater than the playback scores associated with theunselected identifier.
 3. The method of claim 2, wherein determining theplayback score for each segment comprises determining the playbackscores based at least in part on the metadata.
 4. The method of claim 2,wherein: the profile information comprises preferred attributes; themetadata comprises segment attributes for each segment of the pluralityof segments; and determining the playback score for each segmentcomprises comparing the segment attributes to the preferred attributes.5. The method of claim 2, further comprising determining a cut-offthreshold, wherein each selected identifier is associated with aplayback score greater than the cut-off threshold.
 6. The method ofclaim 1, further comprising generating for display an indicatorindicating that the condensed version is being displayed.
 7. (canceled)8. (canceled)
 9. The method of claim 1, further comprising receiving anend time indicator indicating the display end time.
 10. The method ofclaim 1, wherein the content item has an original playback duration, andwherein the condensed version of the content item has a condensedplayback duration less than the original playback duration.
 11. A systemfor displaying condensed content based on time constraints, the systemcomprising: a display device; memory configured to store content acontent item and metadata; and control circuitry coupled to the displaydevice and coupled to the memory, and configured to: receive a displaycommand indicating that the content item is to be displayed; determine adisplay start time, wherein the display start time is based on when thedisplay command was received; determine a plurality of segments of thecontent item, wherein the segments are arranged according to a playbackorder, and wherein each segment is defined in the metadata by a segmentstart time and a segment end time; determine a display end time, whereinthe display end time coincides with a scheduled end time for the contentitem, wherein the display start time and the display end time define aplayback time interval over which portions of the content item are to bedisplayed; select a set of segments based on profile information,wherein the cumulative playback time of the set of segments is less thanor equal to the playback time interval; and generate for display on thedisplay device a condensed version of the content item, according to theplayback order comprising the set of segments of the content item. 12.The system of claim 11, wherein the control circuitry is furtherconfigured to: determine a playback score for each segment of theplurality of segments based on the profile information; sort, by theplayback scores, a plurality of identifiers for the segments to generatea sequence of playback scores sorted identifiers; and select the set ofsegments by selecting a set of consecutive identifiers from the sequenceof playback scores sorted identifiers, wherein each selected identifieris associated with a playback score greater than the playback scoresassociated with the unselected identifier.
 13. The system of claim 12,wherein the control circuitry is further configured to determine theplayback score for each segment by determining the playback scores basedat least in part on the metadata.
 14. The system of claim 12, wherein:the profile information comprises preferred attributes; the metadatacomprises segment attributes for each segment of the plurality ofsegments; and the control circuitry is further configured to determinethe playback score for each segment by comparing the segment attributesto the preferred attributes.
 15. The system of claim 12, wherein thecontrol circuitry is further configured to determine a cut-offthreshold, wherein each selected identifier is associated with aplayback score greater than the cut-off threshold.
 16. The system ofclaim 11, wherein the control circuitry is further configured togenerate for display an indicator indicating that the condensed versionis being displayed.
 17. (canceled)
 18. (canceled)
 19. The system ofclaim 11, wherein the control circuitry is further configured to receivean end time indicator indicating the display end time.
 20. The system ofclaim 11, wherein the content item has an original playback duration,and wherein the condensed version of the content item has a condensedplayback duration less than the original playback duration. 21-30.(canceled)
 31. The system of claim 1, wherein the cumulative playbacktime of the set of segments is equal to the playback time interval. 32.The system of claim 11, wherein the cumulative playback time of the setof segments is equal to the playback time interval.